<?php
	// Abrimos la sesion del cliente
	session_start();
	// Comprobamos si es una peticion por POST
	if($_SERVER['REQUEST_METHOD'] == 'POST'){
		// Comprobamos si esta bien formulado el post
		if(isset($_POST['datosPostInforme'])){
			if(isset($_POST['peticionAjax'])){
				$datosPostInforme = $_POST['datosPostInforme'];
			}else{
				$datosPostInforme = json_decode($_POST['datosPostInforme'], true);
			}
			// strip_tags elimina codigo html por si lo hubiese, previene un posible ataqye de XSS (que se ejecute código
			// html en nuestro servidor enviado desde un formulario)
			$accion = strip_tags($datosPostInforme['accion']);
			$tokenCSRF = strip_tags($datosPostInforme['tokenCSRF']);
			$tipoFormulario = strip_tags($datosPostInforme['tipoFormulario']);
			$idComercio = $_SESSION['usuario'];

			// Comprobamos la igualdad de tokens, si no son iguales es que estamos ante un ataque CSRF
			if(!isset($_SESSION[$tipoFormulario]) || $tokenCSRF !== $_SESSION[$tipoFormulario]){
				// Ataque CSRF
				throw new RuntimeException('Ataque CSRF');
			}else{
				if($accion == 'listarVentas'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$ordenacion = strip_tags($datosPostInforme['ordenacion']);
					$tipoFecha = strip_tags($datosPostInforme['tipoFecha']);
					$respuestaServidor = $dbConfiguracion -> obtenerInformesVentas($idComercio, $ordenacion, $tipoFecha);
					echo json_encode($respuestaServidor);
				}else if($accion == 'listarDetallesVenta'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$idCabecera = strip_tags($datosPostInforme['idCabecera']);
					$ordenacion = strip_tags($datosPostInforme['ordenacion']);
					$respuestaServidor = $dbConfiguracion -> obtenerDetalleVenta($idComercio, $idCabecera, $ordenacion, true);
					echo json_encode($respuestaServidor);
				}else if($accion == 'listarDevoluciones'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$ordenacion = strip_tags($datosPostInforme['ordenacion']);
					$respuestaServidor = $dbConfiguracion -> obtenerInformesDevoluciones($idComercio, $ordenacion);
					echo json_encode($respuestaServidor);
				}else if($accion == 'listarHistorico'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$ordenacion = strip_tags($datosPostInforme['ordenacion']);
					$respuestaServidor = $dbConfiguracion -> obtenerInformesHistorico($idComercio, $ordenacion);
					echo json_encode($respuestaServidor);
				}else if($accion == 'listarDetalleOperacion'){
					require_once('../bd/db_conectorMySQL.php');
					// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$idCabecera = strip_tags($datosPostInforme['idCabecera']);
					$idOperacion = strip_tags($datosPostInforme['idOperacion']);
					$ordenacion = strip_tags($datosPostInforme['ordenacion']);
					$respuestaServidor = $dbConfiguracion -> obtenerDetalleOperacion($idComercio, $idCabecera, $idOperacion, $ordenacion);
					echo json_encode($respuestaServidor);
				}else if($accion == 'descargarFactura'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$idCabecera = strip_tags($datosPostInforme['idCabecera']);
					if(isset($datosPostInforme['idOperacion'])){
						$idOperacion =  strip_tags($datosPostInforme['idOperacion']);
					}else{
						$idOperacion = 1;
					}
					$respuestaServidor = $dbConfiguracion -> obtenerImagenFactura($idComercio, $idCabecera, $idOperacion);
					echo json_encode($respuestaServidor);
				}else if($accion == 'descargarTicket'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$idCabecera = strip_tags($datosPostInforme['idCabecera']);
					$idOperacion =  strip_tags($datosPostInforme['idOperacion']);
					$respuestaServidor = $dbConfiguracion -> obtenerTicketOperacion($idComercio, $idCabecera, $idOperacion);
					echo json_encode($respuestaServidor);
				}else if($accion == 'listarEmpleados'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$ordenacion = strip_tags($datosPostInforme['ordenacion']);
					$tipoFecha = strip_tags($datosPostInforme['tipoFecha']);
					$respuestaServidor = $dbConfiguracion -> obtenerTablaInformesEmpleados($idComercio, $ordenacion, $tipoFecha);
					
					echo json_encode($respuestaServidor);
				}else if($accion == 'listarProductos'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$ordenacion = strip_tags($datosPostInforme['ordenacion']);
					$tipoFecha = strip_tags($datosPostInforme['tipoFecha']);
					$respuestaServidor = $dbConfiguracion -> obtenerTablaInformesProductos($idComercio, $ordenacion, $tipoFecha);
					
					echo json_encode($respuestaServidor);
				}else if($accion == 'graficaVentasNetas'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$tipoFecha = $datosPostInforme['tipoFecha'];
					$respuestaServidor = $dbConfiguracion -> obtenerVentasNetas($idComercio, $tipoFecha);
					echo json_encode($respuestaServidor);
				}else if($accion == 'graficaActividadEmpleados'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$tipoFecha = $datosPostInforme['tipoFecha'];
					$respuestaServidor = $dbConfiguracion -> obtenerActividadEmpleados($idComercio, $tipoFecha);
					echo json_encode($respuestaServidor);
				}else if($accion == 'graficaActividadProductos'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$tipoFecha = $datosPostInforme['tipoFecha'];
					$respuestaServidor = $dbConfiguracion -> obtenerActividadProductos($idComercio, $tipoFecha);
					echo json_encode($respuestaServidor);
				}
			}
		}
	}
?>